<?php
class SubArea {
    
    private $idsubarea;
    private $desc_subarea;
    private $nome_area;
    
    //TABELA AREASUB
    private $idarea;
    
    //variaveis internas
    private $bd; //conexão com o banco
    //private $tabela; //nome da tabela LINHA DE CÓDIGO DESNECESSÁRIA - RICARDO25/08/14

    public function __construct() {
        $this->bd = new BD();
        //$this->tabela = "area";                      // mudar
    }

    public function __get($key) {
        return $this->$key;
    }

    //método de retorno de valores do objeto 
    public function __set($key, $value) {
        $this->$key = $value;
    }

    //METODOS 
    //BANCO DE DADOS
    public function inserir() {
        $sql = "INSERT INTO subarea (desc_subarea )VALUES ('$this->desc_subarea');";
        //FAZER O INSERT DE AREASUB
        $sql.="INSERT INTO AREASUB (idarea, idsubarea) VALUES ({$this->idarea},(SELECT MAX(idsubarea) FROM subarea))";

        $retorno = pg_query($sql);
        return $retorno;
    }
       
// --------------------------------------------------------------------------    
    public function listar($complemento = "") {
        $sql="SELECT subarea.idsubarea,subarea.desc_subarea,area.desc_area as nome_area 
            FROM subarea
            INNER JOIN areasub ON areasub.idsubarea = subarea.idsubarea
            INNER JOIN area    ON area.idarea       = areasub.idarea";

        $resultado = pg_query($sql);

        $retorno = NULL;
        //percorre os registros
        while ($reg = pg_fetch_assoc($resultado)) {
            //transforma em objetos categoria
            $obj = new SubArea();  //mudar 
            $obj->idsubarea    = $reg["idsubarea"];
            $obj->desc_subarea = $reg["desc_subarea"];
            $obj->nome_area    = $reg["nome_area"];
            
            //adiciona a variavel de retorno
            $retorno[] = $obj;   
        }
        
        return $retorno;
    }
 
// --------------------------------------------------------------------------    
    public function excluir() {
        
        $sql = "DELETE FROM subarea WHERE idsubarea =$this->idsubarea";
        $retorno = pg_query($sql);
        return $retorno;
    }

// --------------------------------------------------------------------------    
    public function atualizar() {
        $retorno = false;                                 // nome dos atributos 
        $sql = "UPDATE subarea SET 
                     desc_subarea   ='$this->desc_subarea'   
                     WHERE idsubarea='$this->idsubarea'";

        $retorno = pg_query($sql);
        return $retorno;
    }


// --------------------------------------------------------------------------
    public function retornarunico() {
        $sql = "SELECT * FROM subarea WHERE idsubarea='$this->idsubarea'";

        $resultado = pg_query($sql);            
        $retorno = NULL;

        $req = pg_fetch_assoc($resultado);
        if ($req == true) {                              
            $obj = new SubArea();
            $obj->idsubarea = $req["idsubarea"];        
            $obj->desc_subarea = $req["desc_subarea"];               
            $retorno = $obj;
        } /*else {
            $retorno = null;
        }*/

        return $retorno;
    }
    
}